#!/bin/bash
set -e

# 核心配置（仅3个关键参数）
GIT_REPO="https://gitee.com/wenming907/deploy.git"  # 仓库地址
LOCAL_DIR="/tmp/smartai_deploy"                     # 本地工作目录
CONTAINER="smartai-face-service"                    # 容器名
PORT=18080                                          # 服务端口

# 1. 清理旧环境
echo "[1/5] 清理旧部署..."
rm -rf "${LOCAL_DIR}" &> /dev/null
mkdir -p "${LOCAL_DIR}"

# 2. 克隆仓库（绕开 raw 链接 403）
echo "[2/5] 克隆 Gitee 仓库..."
if ! git clone --depth 1 "${GIT_REPO}" "${LOCAL_DIR}"; then  # --depth 1 只下最新版，更快
  echo "错误：仓库克隆失败（检查网络/Git是否安装）"
  # 自动安装 Git（防止没装）
  sudo apt update &> /dev/null && sudo apt install -y git &> /dev/null
  # 重试一次
  if ! git clone --depth 1 "${GIT_REPO}" "${LOCAL_DIR}"; then
    echo "错误：重试克隆仍失败，请手动执行 git clone ${GIT_REPO}"
    exit 1
  fi
fi

# 3. 检查 Docker 环境
echo "[3/5] 检查 Docker..."
# 没 Docker 就装
if ! command -v docker &> /dev/null; then
  echo "安装 Docker 中..."
  curl -fsSL https://get.docker.com | sudo sh &> /dev/null
fi
# 没启动就启动
! sudo systemctl is-active --quiet docker && sudo systemctl start docker &> /dev/null

# 4. 构建镜像 + 启动容器
echo "[4/5] 构建镜像并启动容器..."
cd "${LOCAL_DIR}" || exit 1
# 构建镜像（用仓库里的 Dockerfile）
sudo docker build --no-cache -t smartai-face:latest .
# 停旧容器、启新容器
sudo docker stop "${CONTAINER}" &> /dev/null || true
sudo docker rm "${CONTAINER}" &> /dev/null || true
sudo docker run -d --name "${CONTAINER}" -p "${PORT}:${PORT}" --restart always smartai-face:latest

# 5. 输出结果
echo -e "\n[5/5] 部署完成！"
SERVER_IP=$(hostname -I | awk '{print $1}')
echo "服务地址：http://${SERVER_IP}:${PORT}"
echo "查看日志：sudo docker logs -f ${CONTAINER}"